import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QDesktopWidget, QHBoxLayout, QWidget, QPushButton, QToolTip
from PyQt5.QtGui import QIcon, QFont


class Mainwin_demo(QMainWindow):
    def __init__(self):
        super(Mainwin_demo, self).__init__()
        self.initUI()

    def initUI(self):
        # 设置窗口字体
        QToolTip.setFont(QFont('SansSerif', 12))
        # 设置主窗口标题
        # self.setWindowTitle('第一个主窗口')
        # 设置窗口尺寸
        self.resize(400, 300)
        self.setToolTip('今天是个<b>好日子</b>')
        self.setGeometry(300, 300, 250, 250)
        self.setWindowTitle('设置控件提示信息')
        self.status = self.statusBar()
        self.status.showMessage('只存在5秒的信息', 5000)
        self.setWindowIcon(QIcon('D:\python-project\py14.PyQt5\imgs\万圣节-蝙蝠.ico'))
        """
            窗口的setWindowIcon方法用于设置窗口的图标，只在Windows中可用
            QApplication中的setWindowIcon方法用于设置主窗口的图标和应用程序图标，但调用了窗口的setWindowIcon方法
            QApplication中的setWindowIcon方法就只能用于设置应用程序图标了
        """
        # self.setWindowTitle("退出应用程序")
        # 添加button
        self.button1 = QPushButton("退出应用程序")
        self.button1.setToolTip('这是一个<b>退出程序</b>按钮')
        # 将信号与槽关联
        self.button1.clicked.connect(self.onClick_Button)
        layout = QHBoxLayout()
        layout.addWidget(self.button1)
        mainFarm = QWidget()
        mainFarm.setLayout(layout)
        self.setCentralWidget(mainFarm)

    def center(self):
        """
        窗口居中
        """
        # 获取屏幕坐标系
        screen = QDesktopWidget().screenGeometry()
        # 获取窗口坐标系
        size = self.geometry()
        newLeft = (screen.width() - size.width()) / 2
        newTop = (screen.height() - size.height()) / 2
        self.move(newLeft, newTop)

    def onClick_Button(self):
        """
        按钮单击事件方法（自定义的槽）
        """
        sender = self.sender()
        print(sender.text() + "按钮被按下")
        app = QApplication.instance()
        # 退出程序
        app.quit()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    # app.setWindowIcon(QIcon('D:\python-project\py14.PyQt5\imgs\万圣节-蝙蝠.ico'))
    main = Mainwin_demo()
    main.show()
    sys.exit(app.exec_())
